package org.demo.test.gc;

public class PrintGC {
    /**
     * -Xmn10M  年轻代大小
     * -Xms40M  堆初始大小
     * -Xmx50M  堆最大空间
     *
     * -Xloggc:gc_log/gc-%t.log GC的日志文件路径
     * -XX:+UseGCLogFileRotation 开启滚动日志
     * -XX:NumberOfGCLogFiles=5 设置GC日志的个数，会基于当前5个日志文件滚动覆盖
     * -XX:GCLogFileSize=10k 设置GC日志文件多大时，写入下一个GC日志文件中
     *
     * -XX:+PrintGCDetails 打印GC的详细信息
     * 不同的垃圾回收器，GC日志（表示年代的词）可能会不一样， 和第一节中差不多，->前的是GC前堆内存使用量，->后面是GC后堆内存使用量，括号内是堆内存总量。
     * 对于这个日志，PSYoungGen：年轻代，ParOldGen：老年代，PSPermGen：持久代（方法区）
     * Times: user表示用户态CPU耗时，sys表示系统CPU耗时，real表示GC实际耗时
     *
     * -XX:+PrintGCTimeStamps 打印进程启动到现在经历的时间
     * -XX:+PrintGCDateStamps 打印gc日志添加日期时间格式
     * -XX:+PrintGCCause GC原因
     * -XX:+PrintHeapAtGC 每次GC前后打印堆信息
     * -XX:+PrintGCApplicationStoppedTime 应用停顿时间
     * -XX:+PrintGCApplicationConcurrentTime GC时打印应用执行时间
     * -XX:+PrintGC 简单的GC开启参数
     *
     * 日志分析工具（gceasy、GCViewer）
     */
    public static void main(String[] args) {
        for(int i=0; i<10000; i++) {
            byte[] b = new byte[1024 * 1024];
//            try {
//                Thread.sleep(1L);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
        }

        System.out.println("结束");
    }
}
